package com.javabase;

/**
 * @Description: java类作用描述
 * @Author: Bsea
 * @CreateDate: 2019/6/14$ 21:07$
 */
public class ConstroctTest3 {
    //静态变量sta1    未赋予初始值
    public static int sta1;
    //静态变量sta1    赋予初始值20

    private static ConstroctTest3 test = new ConstroctTest3();

    //构造方法中对于静态变量赋值
    private ConstroctTest3() {
        sta1 ++ ;
        sta2 ++ ;
    }
    public static int sta2 = 20;
    public static void main(String[] args) {
        ConstroctTest3 c3=new ConstroctTest3();
        System.out.println(c3.sta1);
        System.out.println(c3.sta2);
    }
}
/**
 * 结果分析：
 *
 * 1. 按照静态变量的顺序，初始化各静态变量。（给变量赋予默认值）
 *
 * 2. 按照顺序，赋予静态变量的初始值。
 *
 * 3. 以上结果在于：类静态变量的位置，决定着通过构造方法给sta1 与 sta2 赋予的值是否有效。
 *
 * 4. 在代码一中，先对于sta2 执行了 sta2 ++ 操作。而后给sta2 赋予静态变量值。（只因为顺序问题）
 */
